Для передачи аргументов в процедуру может использоваться массив параметров. При описании процедуры не требуется указывать число элементов такого массива.
Для обозначения массива параметров используется ключевое слово ParamArray. Такой массив описывается как массив типа Variant и всегда представляет последние элементы из списка аргументов в описании процедуры.
Ниже приводится пример описания процедуры с массивом параметров.
Sub AnyNumberArgs(strName As String, ParamArray intScores() As Variant) Dim intI As Integer Debug.Print strName; " Scores" ' Использует функцию UBound для определения верхней границы массива. For intI = 0 To UBound(intScores()) Debug.Print " "; intScores(intI) Next intI End Sub
В следующих строках приведены примеры вызова этой процедуры.
AnyNumberArgs "Иван", 10, 26, 32, 15, 22, 24, 16 AnyNumberArgs "Мария", "Высокий", "Низкий", "Средний", "Высокий"